// function foo(str, a) {
//   eval(str)  //var b = 3
//   console.log(a, b);
// }
// foo('var b = 3', 1)
// console.log(b);



// var b = 2

// foo('var b = 3', 1)

// var obj = {
//   a: 1,
//   b: 2,
//   c: 3
// }
// with (obj) {
//   a = 2
//   b = 3
//   c = 4
// }
// console.log(obj);  //输出{ a: 2, b: 3, c: 4 }

// var o1 = {
//   a: 1
// }
// var o2 = {
//   b: 2
// }
// function foo(obj) {
//   with (obj) {
//     a = 2
//   }  //相当于在全局作用域中声明 var a=2
// }
// foo(o2)
// console.log(o2);  //输出{ b: 2 }
// console.log(a);   //输出2


console.log(a);
a()
var a = 3
function a() {
  console.log(10);

}
console.log(a);
a = 6
a()
